---
id: 656879a66338b2a461d5d307
title: Крок 9
challengeType: 20
dashedName: step-9
---

# --description--

<!-- TODO: Find better places to split explanation up. -->

Алгоритм Луна виглядає наступним чином:

1. Справа наліво помножте значення кожної другої цифри на два. Якщо добуток більший за 9, додайте цифри добутків.
2. Візьміть суму всіх цифр.
3. Якщо сума всіх цифр кратна 10, то число дійсне, якщо ні — недійсне.

Як приклад розглянемо номер рахунку 7992739871, до якого буде додано контрольну цифру, що утворить 7992739871x:

```markdown
Account number      7   9  9  2  7  3  9   8  7  1  x
Double every other  7  18  9  4  7  6  9  16  7  2  x
Sum 2-char digits   7   9  9  4  7  6  9   7  7  2  x
```

Замініть інструкцію `pass` на змінну під назвою `sum_of_odd_digits` та зі значенням `0`.

# --hints--

Функція `verify_card_number` повинна містити `sum_of_odd_digits = 0`.

```js
({
    test: () => {
        const transformedCode = code.replace(/\r/g, "");
        const verify_card_number = __helpers.python.getDef("\n" + transformedCode, "verify_card_number");
        const { function_body } = verify_card_number;

        assert.match(function_body, /sum_of_odd_digits\s*=\s*0/);
    }
})
```

Функція `verify_card_number` не повинна містити `pass`.

```js
({
    test: () => {
        const transformedCode = code.replace(/\r/g, "");
        const verify_card_number = __helpers.python.getDef("\n" + transformedCode, "verify_card_number");
        const { function_body } = verify_card_number;

        assert.notMatch(function_body, /pass/);
    }
})
```

# --seed--

## --seed-contents--

```py
--fcc-editable-region--
def verify_card_number(card_number):
    pass

--fcc-editable-region--
def main():
    card_number = '4111-1111-4555-1142'
    card_translation = str.maketrans({'-': '', ' ': ''})
    translated_card_number = card_number.translate(card_translation)

    print(translated_card_number)

    verify_card_number(translated_card_number)

main()
```
